第三十四讲 R-简单线性回归模型(2)
在“R与生物统计专题”中,我们会从介绍R的基本知识展开到生物统计原理及其在R中的实现。以从浅入深,层层递进的形式在投必得医学公众号更新。
上一讲中(第三十三讲 R-简单线性回归模型(1)),我们介绍了简单线性回归模型的基本概念,已经如何获得一个简单回归模型。
那么,在获得了这个回归模型以后,这个模型好不好,它有什么意义能,对我们研究问题可以做那些方面的贡献和解释呢?这一讲,我们将深入对线性回归模型进行解释。
加载软件包
library(tidyverse)
library(ggpubr)
导入及检查数据:
my_data<-read.csv('diabetes.csv')
dim(my_data)
head(my_data)
如需获取数据diabetes.csv,请关注投必得医学公众号,后台回复“diabetes.csv”获取数据。
研究问题:根据血糖情况来预测胰岛素水平。
数据清理
new_data<-my_data[my_data$Glucose>0 & my_data$Insulin >0,]
dim(new_data)
#[1] 393 9
计算回归模型
model <- lm(Insulin ~ Glucose, data = new_data)
由以上内容,我们建立了血糖和胰岛素水平的简单线性回归方程式,如下
Insulin = -118.643 + 2.239 * Glucose
使用此公式预测胰岛素水平之前,应确保该模型具有统计意义,即:
预测变量和结果变量之间存在统计上的显着关系
建立的模型适合手中的数据。
所以,我们需要对线性回归模型的质量进行评估。
2.1 回归模型的详细统计学内容
我们首先使用R函数显示模型的统计摘要内容summary():
summary(model)
输出结果
Call:
lm(formula = Insulin ~ Glucose, data = new_data)
Residuals:
Min 1Q Median 3Q Max
-270.36 -51.22 -15.03 29.32 541.48
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -118.6430 20.0428 -5.919 7.07e-09 ***
Glucose 2.2389 0.1585 14.122 < 2e-16 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 96.75 on 391 degrees of freedom
Multiple R-squared: 0.3378, Adjusted R-squared: 0.3361
F-statistic: 199.4 on 1 and 391 DF, p-value: < 2.2e-16
摘要输出显示6个组件,包括:
Call:显示用于计算回归模型的函数调用。
Residuals:快速查看残差的分布,根据定义,这些均值为零。因此,中位数不应远离零,并且最小值和最大值的绝对值应大致相等。
Coefficients:显示回归系数β及其统计意义。与结果变量显着相关的预测变量以星号标记。
残差标准误(Residual standard error,RSE),R平方(Multiple R-squared,R2)和F统计量(F-statistic)是用于检查模型与我们的数据拟合程度的指标。
2.2 系数的意义
模型统计摘要中的系数表显示:
β系数(Estimate)的估计
标准误(Std. Error)定义了β系数的精度。对于给定的β系数,标准误反映了在重复采样下系数如何变化。它可用于计算置信区间和t统计量。
t统计量(t value)和相关的p值(Pr(>|t|)),其定义所述β系数的统计显着性。
如果只想获取系数内容,可以使用R代码如下:
summary(model)$coef
输出结果
Estimate Std. Error t value Pr(>|t|)
(Intercept) -118.642980 20.0427805 -5.919487 7.069609e-09
Glucose 2.238933 0.1585402 14.122178 7.004849e-37
2.2.1 t统计量和p值:
对于给定的预测变量(x),t统计量(及其关联的p值)检测给定的预测变量与结果变量之间是否存在统计学上显着的关系,即预测变量的β系数是否显着不同于0。
统计假设如下:
原假设(H0):β系数等于零(即x和y之间没有关系)
备择假设(Ha):β系数不等于零(即x和y之间存在某种关系)
在数学上,对于给定的β系数(b),t检验计算为t = (b - 0)/SE(b),其中SE(b)是系数b的标准误差。t统计量测量b远离0的标准偏差的数量。因此,较大的t统计量将产生较小的p值。
t统计量越高(p值越低),则预测变量越重要。右侧的*符号在视觉上显示了预测变量的重要级别。表格下方的行显示了这些符号的定义。*表示0.01
当系数与0存在明显统计学差异时,我们认为,预测变量(x)与结果变量(y)之间存在关联。
在我们的示例中,截距的p值和预测变量都非常重要,因此我们可以拒绝原假设并接受备择假设,这意味着预测变量与结果变量之间存在显着关联。
对于是否在模型中包含预测变量,t统计量是非常有用的。高t统计量(p值较低)表示应将预测变量保留在模型中,而非常低的t统计量则表示,在实际预测模型的建立时,可以删除该预测变量 。
2.2.2 标准误和置信区间:
标准误体现了β系数的变异性/准确性。它可用于计算系数的置信区间。
例如,系数b1的95%置信区间定义为b1 +/- 2*SE(b1),其中:
b1的下限= b1 - 2*SE(b1) = 0.047 - 2*0.00269 = 0.042
b1的上限= b1 + 2*SE(b1) = 0.047 + 2*0.00269 = 0.052
即,间隔[0.042,0.052]中包含b1的真实值的可能性为95%。同样,可以将b0的95%置信区间计算为b0 +/- 2*SE(b0)。
要获取这些信息,只需键入:
confint(model)
2.5 % 97.5 %
输出结果
(Intercept) -158.048082 -79.237878
Glucose 1.927235 2.550631
2.3 回归模型的精度
一旦确定至少一个预测变量与结果显着相关,就应该对回归模型的对数据的拟合精度进行检验。此过程也称为拟合优度(goodness-of-fit)。
可以使用以下三个数量来评估线性回归拟合的整体精度,这些数量显示在模型摘要中:
残差标准误(RSE)。
R平方(R2)
F统计量
Residual standard error: 96.75 on 391 degrees of freedom
Multiple R-squared: 0.3378, Adjusted R-squared: 0.3361
F-statistic: 199.4 on 1 and 391 DF, p-value: < 2.2e-16
2.3.1 残留标准误差(RSE)
RSE
RSE(也称为模型sigma)是残差的变异度,表示拟合回归线周围观测点的平均变化情况。它是残差的标准偏差。
RSE提供了模型无法解释的数据模式的绝对度量。比较两个模型时,具有较小RSE的模型是更好的预测模型。
将RSE除以结果变量的平均值,即获得预测误差率,该误差率应尽可能小。
在我们的示例中,RSE = 96.75,这意味着观察到的胰岛素水平平均偏离真实回归线约96.75个单位。
96.75单位的RSE是否是可以接受的预测误差,这是主观的,它取决于研究问题的实际背景。但是,我们可以计算百分比误差。在我们的数据集中,胰岛素平均值为155.8855,因此百分比误差为96.75 / 155.8855 = 62%。
sigma(model)*100/mean(new_data$Insulin)
[1] 62.06423
2.3.2 R平方和调整后的R平方
R平方
R平方(R2)的范围是0到1,代表模型可以解释实际情况的百分比。调整后的R平方是调整了自由度后的R平方。
R2衡量模型拟合数据的程度。对于简单的线性回归,R2是皮尔森相关系数的平方。
R2值高是一个好的指示。表示回归模型对数据的拟合程度好。但是,当在模型中添加更多的预测变量时(例如在多元线性回归模型中),R2的值趋于增加,因此您应主要考虑调整后的R平方。
(调整后的)R2接近1表示结果中的大部分可变性已通过回归模型进行了解释。
接近0的数字表示回归模型无法解释结果的大部分可变性。
2.3.3. F统计量
F统计量
F统计量提供了模型的整体重要性。它评估至少一个预测变量是否具有非零系数。
在简单的线性回归中,此检验并不具有真正的意义,因为它只是复制了系数表中的t检验给出的信息。实际上,F检验与t检验的平方相同:14.122^2 = 199.4309。在任何具有1个自由度的模型中都是如此。
一旦我们开始在多元线性回归中使用多个预测变量,则F统计量将变得更加重要。
F统计量越大, 对应的统计显着性p值(p <0.05)越小。在我们的示例中,F统计量等于199.4309,产生的p值为 < 2.2e-16,表示血糖值的系数与0间有很大差异。
好了,本期讲解就先到这里。小伙伴们赶紧试起来吧。
在之后的更新中,我们会进一步为您介绍R的入门,以及常用生物统计方法和R实现。欢迎关注,投必得医学手把手带您走入R和生物统计的世界。
提前预告一下,下一讲我们将学习多元线性回归模型。
当然啦,R语言的掌握是在长期训练中慢慢积累的。一个人学习太累,不妨加入“R与统计交流群”,和数百位硕博一起学习。
快扫二维码撩客服,
带你进入投必得医学交流群,
让我们共同进步!
↓↓
- END -
长按二维码关注「投必得医学」,更多科研干货在等你!